Tu sistema anfitrión debería tener el siguiente software con las versiones mínimas indicadas. Esto no debería ser un problema para la mayoría de las distribuciones Linux modernas. Debes tener en cuenta también que muchas distribuciones ponen las cabeceras del software en paquetes separados, con frecuencia de la forma "nombre-del-paquete-devel” o “nombre-del-paquete-dev”. Asegurate de instalarlos si tu distribución los proporciona.
Las versiones anteriores de los paquetes de software mencionados pueden funcionar, pero no ha sido probadas.
Bash-3.2 (/bin/sh debería ser un enlace simbólico o duro de bash)
Binutils-2.17 (las versiones superiores a 2,24 no se recomiendan ya que no han sido probadas)
Bison-2.3 (/usr/bin/yacc debe ser un enlace a bison o un pequeño script que ejecute bison)
Bzip2-1.0.4
Coreutils-6.9
Diffutils-2.8.1
Findutils-4.2.31
Gawk-4.0.1 (/usr/bin/awk debería ser un enlace a gawk)
GCC-4.1.2 incluyendo el compilador C++, g++(las versiones superiores a 4.8.2 no son recomendables ya que no han sido probadas)
En algunas distribuciones, ha habido informes de que algunas librerías utilizadas por gcc pueden estar en un estado incoherente y que esto interfiere con la construcción de algunos paquetes de LFS. Para comprobarlo, busque en /usr/lib y posiblemente en /usr/lib64: libgmp.la, libmpfr.la y libmpc.la. Cualquiera de los tres deberían estar presente o ausente, pero no sólo uno o dos. Si tal problema existe en el sistema, o bien cambie el nombre o elimine los archivos .la o instale el paquete adecuado que falta.
Glibc-2.5.1 (versiones superiores a 2,19 no se recomiendan ya que no han sido probadas)
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-2.6.32
La razón de la exigencia de la versión del núcleo es que especificaremos dicha versión durante la construcción de glibc en el capítulo 6 siguiendo la recomendación de los desarrolladores. También es requerido por udev.
Si el núcleo de la máquina es anterior a la 2.6.32 tendrá que reemplazar el núcleo con una versión más actualizada. Hay dos maneras de hacer esto. En primer lugar, ver si su proveedor de Linux proporciona un paquete kernel 2.6.32 o posterior. Si es así, es posible que desee instalarlo. Si su proveedor no ofrece un paquete kernel aceptable, o prefieres no instalarlo, puede compilar un kernel usted mismo. Las instrucciones para compilar el núcleo y configurar el gestor de arranque (suponiendo que el anfitrión utiliza GRUB) se encuentran en el capítulo 8.
M4-1.4.10
Make-3.81
Patch-2.5.4
Perl-5.8.8
Sed-4.1.5
Tar-1.18
Xz-5.0.0
Tenga en cuenta que se requieren los enlaces simbólicos mencionados anteriormente para construir un sistema LFS utilizando las instrucciones que aparecen en este libro. Enlaces simbólicos que apuntan a otro software (como a dash, mawk, etc) pueden funcionar, pero no están verificados ni apoyado por el equipo de desarrollo de LFS, y pueden exigir desviación de las instrucciones o parches adicionales a algunos paquetes.
Para ver si el sistema anfitrión tiene todas las versiones correctas, y la capacidad para compilar programas, ejecuta lo siguiente:
cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
else echo "yacc not found"; fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
else echo "awk not found"; fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
xz --version | head -n1
echo 'main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation failed"; fi
rm -f dummy.c dummy
for lib in lib{gmp,mpfr,mpc}.la; do
echo $lib: $(if find /usr/lib* -name $lib|
grep -q $lib;then :;else echo not;fi) found
done
unset lib
EOF
bash version-check.sh